www.gusucode.com > 一个JSP MYSQL在线考试系统源码程序 > 一个JSP MYSQL在线考试系统/TomExam_v2.1_UTF8/TomExam_v2.1_UTF8/WebRoot/inc/pagination.js

    	
	/**
	 * 分页控件
	 * by eu3 2009-11-03
	 * @param {Object} id
	 */
	Pagination = function(id){   
	    var totalNum = 0;
	    var maxNum = 10;
	    var pageUrl = "";
	    var breakpage = 5;
	    var currentposition = 3;
	    var breakspace = 2;
	    var maxspace = 4;
	    var currentpage = 1;
	    var perpage = 10;
	    var id = id;
		var pagecount = 0;
		
		this.setStep = function(step){
			currentposition = step;
		};
		
		this.getPages = function(){
			return pagecount;
		};
		
	    this.initPage = function(pageName){
			var count = this.getTotalNum();
			perpage = this.getMaxNum();
			if (currentpage==null){
				currentpage = 1;
			}else{
				currentpage = parseInt(currentpage);
			}
			
			pagecount = Math.floor(count/perpage) + 1;
			var pagestr = "";
			var prevnum = currentpage - currentposition;
			var nextnum = currentpage + currentposition;
			if(prevnum<1) prevnum = 1;
			if(nextnum>pagecount) nextnum = pagecount;
			pagestr += (currentpage==1)?'<span class="disabled"><上一页</span>':'<span><a  href="javascript:'+pageName+'.page_onclick('+(this.getIndexPage()-1)+',\''+pageName+'\')"><上一页</a></span>';
			
			if(prevnum-breakspace > maxspace){
				for(var i=1; i<=breakspace; i++)
					pagestr += '<a href="javascript:'+pageName+'.page_onclick('+i+',\''+pageName+'\')">'+i+'</a>';   
					pagestr += '....';   
					for(var i=pagecount-breakpage + 1; i<prevnum; i++)   
						pagestr += '<a href="javascript:'+pageName+'.page_onclick('+i+',\''+pageName+'\')">'+i+'</a>';   
			}else{   
				for(var i=1; i<prevnum; i++)   
					pagestr += '<a href="javascript:'+pageName+'.page_onclick('+i+',\''+pageName+'\')">'+i+'</a>';   
			}
	
			for(var i=prevnum; i<=nextnum; i++){
				pagestr += (currentpage==i)?'<span class="current">'+i+'</span>':'<a href="javascript:'+pageName+'.page_onclick('+i+',\''+pageName+'\')">'+i+'</a>';
			}
			
			if(pagecount-breakspace-nextnum + 1 > maxspace){
				for(var i=nextnum + 1; i<=breakpage; i++)
					pagestr += '<a href="javascript:'+pageName+'.page_onclick('+i+',\''+pageName+'\')">'+i+'</a>';
					pagestr += '<span class="break">....</span>';
					for(var i=pagecount-breakspace + 1; i<=pagecount; i++)
						pagestr += '<a href="javascript:'+pageName+'.page_onclick('+i+',\''+pageName+'\')">'+i+'</a>';
			}else{
				for(var i=nextnum + 1; i<=pagecount; i++)
					pagestr += '<a href="javascript:'+pageName+'.page_onclick('+i+',\''+pageName+'\')">'+i+'</a>';
			}
			
			pagestr += (currentpage==pagecount)?'<span class="disabled">下一页></span>':'<a href="javascript:'+pageName+'.page_onclick('+ (this.getIndexPage()+1) +',\''+pageName+'\')">下一页></a>';   
	
			//
			//pagestr += ' &nbsp; <input type="text" id="tpagenum">';
			//var tempage = this.$geb("tpagenum");
			//tempage = (null==tempage)?1:tempage.value;
			//pagestr += '<a href="javascript:'+pageName+'.page_onclick('+tempage+',\''+pageName+'\')">GO</a>';
			
			this.$geb(id).className = "manu";
			this.$geb(id).innerHTML = pagestr;
			
	    };
		
	    this.getTotalNum = function(){   
	        return totalNum;
	    }; 

	    this.setTotalNum = function(sTotalNum){   
	        totalNum = sTotalNum;   
	    };

	    this.getMaxNum = function(){   
	        return maxNum;
	    };

	    this.setMaxNum = function(sMaxNum){   
	        maxNum = sMaxNum;
	    };

	    this.getIndexPage = function(){
	        return currentpage;
	    };
		
	    this.setIndexPage = function(sCurrentPage){   
	        currentpage = sCurrentPage;
	    };
		
	    this.page_onclick = function(num,pageStr){   
	      this.setIndexPage(num);
	      pagination_data();
	      this.initPage(pageStr);
	    };
		
	    this.$geb = function(objStr){
			return document.getElementById(objStr);
		};
	  
	}
	
	function $geb(objStr){
		return document.getElementById(objStr);
	}
	
	function pagination_data(){
	
	}